/*
 *  Article.h
 *  Article
 *
 *  Created by Hamza SHAWY and Jonathan SCHRODER on 10/10/07.
 *  Copyright 2007 __MyCompanyName__. All rights reserved.
 *
 */

 
#ifndef ARTICLE_H
#define ARTICLE_H

#include <iostream>
#include <string>
#include <list>


using std::list;
using std::string;


#include "Reference.h"

class Article  : public Reference  
{
       public: // the BEHAVIOR of objects insatnce of the class Article : the MEMBRE FUNCTIONS (METHODS) need to be accessed outside the class 

                Article (); // the default constructor of the class Article initializes data members to default values. 
				Article ( int, int, int, int, string, string, string); // the regular constructor of the class Article  
                ~Article (); // the destructor can not be overloaded because there is only one for the class Article
                
			    int getStartPage() const; // returns the start page 
				int getEndPage() const; // returns the end page
				int getNumberOfPages() const ; // returns the total number of pages (computed using starPage and endPage)
                string getJournal() const; // returns the name of the journal
				void print(); /* prints a string representation of objects of Article.
				               This member function overrides the one defined in the class Reference. */ 
				
				// the following methods are not asked but needed for the test of the previous methods and for the rest of the project
				void setStartPage(int) ; // prototype of the setStartPage function . Sets the article's start page
				void setEndPage(int); // prototype of the setEndPage function . Sets the article's end page
				void setJournalInformations (string); // prototype of the setJournalInformations function . Sets the article's journal informations
			

			   			
			
		protected: // deals with the ATTRIBUTES of the object instance of the class Article : the DATA MEMBERS can cot be accessed outside the class (the data are ecapsulated or hidden)
			    int startPage ;   // which is unique for each (object instance of the class Article)
                int endPage;  // which is unique for each (object instance of the class Article) 
				string JournalInformations ; //  which is unique for each (object instance of the class Article) 

				
 }; // end class Article

#endif    
